#!/usr/bin/env python3
# coding=utf-8
'''
说明：
'''
import os
import xlrd
import xlwt
import xlutils.copy
from PIL import Image
import datetime,time

#图片处理
def dealImg(filename):
    filepath=os.path.dirname(__file__)+'/img/%s.jpg'%filename
    img=Image.open(filepath)
    new_img=img.resize((104,61),Image.ANTIALIAS)
    new_img.save('%s.bmp'%filename,quality=1)

def del_files(path):
    for file in os.listdir(path):
        targetfile=os.path.join(path,file)
        if '.bmp' in targetfile:
            os.remove(targetfile)


#生成xls
def createXls(dataList,errorfile):
    style = xlwt.easyxf(
        'borders: top 1,left 1,right 1,bottom 1;font: height 240, name 华文仿宋, colour_index black, bold off, italic off; align: wrap on, vert centre, horiz centre;')
    style2 = xlwt.easyxf(
        'font: height 240, name 华文仿宋, colour_index black, bold off, italic off; align: wrap on, vert centre;')
    filename=str(dataList[2])+dataList[3]
    keshi=str(dataList[1]).replace('#N/A','无科室').replace('42','无科室')#N/A
    if not os.path.exists(keshi):
        os.mkdir(keshi)
    rb = xlrd.open_workbook('template.xls', formatting_info=True)  # 打开模板xls
    wb = xlutils.copy.copy(rb)
    ws = wb.get_sheet(0)
    ws.write(0, 5, '档案号：'+str(dataList[0]).replace('#N/A','').replace('42',''), style2)#档案号
    ws.write(2, 0, '工号：' + str(dataList[2]).replace('#N/A',''), style2)#工号
    ws.write(3, 1, str(dataList[3]).replace('#N/A',''), style)#姓名
    ws.write(3, 3, str(dataList[4]).replace('#N/A',''), style)  # 性别
    ws.write(3, 5, str(dataList[5]).replace('#N/A',''), style)  # 出生年月
    #图片插入
    try:
        dealImg(filename)
        ws.insert_bitmap('%s.bmp'%filename, 3, 6)
    except:#无图记录略过
        with open(errorfile,'a') as f:
            f.write(keshi+'--'+filename+'\n')
    ws.write(4, 1, dataList[6], style)  # 民族
    ws.write(4, 3, dataList[7], style) # 籍贯
    ws.write(4, 5, dataList[8], style)  # 籍贯
    ws.write(5, 1, dataList[9], style)  # 政治面貌
    ws.write(5, 3, dataList[10], style)  # 最高学历
    ws.write(5, 5, dataList[11], style)  # 进入本单位时间
    ws.write(6, 1, dataList[12], style)  # 原
    ws.write(6, 5, dataList[13], style)  # 原
    ws.write(7, 1, dataList[14], style)  # 原
    ws.write(7, 5, dataList[15], style)  # 原
    ws.write(8, 1, dataList[16], style)  # 原
    ws.write(8, 5, dataList[17], style)  # 原
    ws.write(9, 2, dataList[18], style)  # 原
    ws.write(9, 5, dataList[19], style)  # 原
    ws.write(10, 2, dataList[20], style)  # 原
    ws.write(10, 5, dataList[21], style)  # 原
    ws.write(11, 1, dataList[22], style2)  # 简历
    wb.save(os.path.dirname(__file__)+'/%s/%s.xls'%(keshi,filename))#保存到科室文件夹中。
    wb.save(os.path.dirname(__file__) + '/%s/%s.xls' % ('全部', filename))  # 保存到统一文件夹中。
    del_files(os.path.dirname(__file__))#删掉生成的图片

if __name__=='__main__':
    data = xlrd.open_workbook('data.xlsx')#读取数据
    table = data.sheet_by_index(0)#读取第一个sheet
    if not os.path.exists('全部'):
        os.mkdir('全部')
    errorfile='没有图片_%s.txt'%datetime.datetime.now().strftime('%Y%m%d%H%M%S%f')#定义错误
    for i in range(table.nrows - 1):#开始读取数据
        dataList = table.row_values(i + 1)#读取整好数据，从第二行开始
        print(dataList)
        createXls(dataList,errorfile)#创建xls
        print('剩余%s行数据'%str(table.nrows-i-2))
        #time.sleep(1)
    print('处理完成\n')

    #input('按任意键结束...')










